//
// Created by madison on 2022/1/6.
//

#include <stdio.h>

/* 函数声明 */
int max(int num1, int num2);

/* 函数声明 */
void swap(int x, int y);

/* 函数声明 */
void swap1(int *x, int *y);


int main() {
    /* 局部变量定义 */
    int a = 100;
    int b = 200;
    int ret;

    /* 调用函数来获取最大值 */
    ret = max(a, b);

    printf("Max value is : %d\n", ret);

    printf("交换前，a 的值： %d\n", a);
    printf("交换前，b 的值： %d\n", b);

    /* 调用函数来交换值 */
    swap(a, b);

    printf("交换后，a 的值： %d\n", a);
    printf("交换后，b 的值： %d\n", b);


    printf("交换前，a 的值： %d\n", a);
    printf("交换前，b 的值： %d\n", b);

    /* 调用函数来交换值
     * &a 表示指向 a 的指针，即变量 a 的地址
     * &b 表示指向 b 的指针，即变量 b 的地址
    */
    swap1(&a, &b);

    printf("交换后，a 的值： %d\n", a);
    printf("交换后，b 的值： %d\n", b);

    return 0;
}

/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2) {
    /* 局部变量声明 */
    int result;

    if (num1 > num2)
        result = num1;
    else
        result = num2;

    return result;
}

/* 函数定义 */
void swap(int x, int y) {
    int temp;

    temp = x; /* 保存 x 的值 */
    x = y;    /* 把 y 赋值给 x */
    y = temp; /* 把 temp 赋值给 y */
}

/* 函数定义 */
void swap1(int *x, int *y) {
    int temp;
    temp = *x;    /* 保存地址 x 的值 */
    *x = *y;      /* 把 y 赋值给 x */
    *y = temp;    /* 把 temp 赋值给 y */
}